home *** CD-ROM | disk | FTP | other *** search
/ ETO Development Tools 4 / ETO Development Tools 4.iso / Essentials / MacApp Documentation / MacApp.TECH$ Archives / 1991 / Feb 91 / MacApp.Tech$ 2⁄1⁄91 / 2826-Using MacApp-Jan91 < prev    next >
Encoding:
Text File  |  1991-03-06  |  10.6 KB  |  185 lines  |  [TEXT/GEOL]

  1. Item    1929695                         30-Jan-91        17:30PST
  2.  
  3. From:   ABI.FC                          Applied BioSystems, Foster City,VAR
  4.  
  5. To:     MACAPP.TECH$                    MacApp Technical
  6.  
  7. ------------------------------------------------------------------------------
  8.  
  9. Sub:    Using MacApp
  10.  
  11. Fellow MacApp’ers:
  12.  
  13. I’ve been seeing some comments on what it is like to be using MacApp and
  14. thought I would throw in my own two bits on the subject.
  15.  
  16. First off, if you are reading this, you have already solved one major problem.
  17. MacApp.Tech$ is the best resource for MacApp developers that I am aware of.
  18. The quality of the discussions and the commitment of the participants are
  19. exemplary.  Thanks very much to all of you-- those who give their time to
  20. answer questions and those who come up with great questions to ask.  It’s been
  21. a huge help.
  22.  
  23. Overall, I’d say that using MacApp is very demanding and difficult, but worth
  24. it if you can afford the additional costs.  There are startup costs for
  25. hardware, software, and training, additional personnel costs, and costs
  26. associated with changes in software engineering methodology.  Benefits are
  27. primarily in product quality and life cycle costs.
  28.  
  29. The hardware and software costs for using MacApp are substantial.  A reasonable
  30. system for MacApp development, especially if you are using C++, is a Mac IIfx
  31. with 8 MB of RAM, a fast 160 MB hard disk, a 13” RGB monitor AND a two page
  32. display.  You’ll also need a CD ROM player, the Developer CD, the ETO CD, the
  33. System 7 CD, a low end Mac for testing, and a variety of printers (for
  34. development and testing).  If this is going to be a multi-programmer project,
  35. you’ll want an E-mail server, an AppleShare file server (for your Projector
  36. DB), Ethernet, and a bridge to LocalTalk (don’t try putting a software bridge
  37. on your file server).
  38.  
  39. I can’t emphasize enough how important it is to have the fastest hardware you
  40. can get.  If you have already been doing Mac development, you’ll find build
  41. times on a MacApp project to be at least four times longer.  Compiling is
  42. significantly slower, because of the large MacApp header files (even with
  43. load/dump), but the biggest problem is the linker, because it is not
  44. incremental.  The long link times mean you are doing batch instead of
  45. interactive development.  Faster hardware doesn’t change this, but it does make
  46. the turn-around times tolerable, so that programmers will stay at their desks
  47. instead of roaming the hallways while MABuild is doing its thing.
  48.  
  49. Training and getting up to speed on MacApp is hard.  Not all programmers are
  50. suited for or will be interested in MacApp, hackers especially.  Mac
  51. programming experience is necessary.  You don’t have to be a toolbox wizard,
  52. but a good general understanding is important, and it is essential to have a
  53. solid grounding in human interface design as practiced on the Mac.  The reason
  54. is that MacApp has several complicated hacks (such as view resources) that work
  55. around toolbox problems in order to support the standard Mac human interface.
  56. If you don’t understand or agree with the Mac human interface standards, you
  57. will have a really hard time understanding what MacApp is trying to do in the
  58. first place, and why, not to mention how.  In other words, putting a good PC or
  59. Unix programmer on a MacApp project may be very frustrating and you should
  60. allow a lot of extra time for them to become familiar with various Mac
  61. applications, MPW, and the toolbox.  It is also very helpful for the
  62. programmers to have experience with large systems (>50K loc), software design,
  63. and the basic concepts of object design and programming.  Many of the features
  64. of Object Pascal and C++ are there to solve the problems of programming in the
  65. large.  To use the features of object programming effectively, you have to
  66. understand why they’re there.
  67.  
  68. The MacApp class at Developer U provides only a very brief introduction.  When
  69. I took the class, the first day was devoted to explaining why we wanted to use
  70. MacApp in the first place.  The second day covered the basic tools, such as
  71. MPW.  This sounds like a waste of time, but there were people in the class who
  72. really needed it.  This left three days to actually cover MacApp.  It was not
  73. possible to get into any aspect of MacApp in depth, or to work on any
  74. non-trivial programming problems.  The class did give a good overview of the
  75. capabilities of MacApp, and I think it worked very well as a confidence
  76. booster.  People who have taken the class tend to come out at a high enough
  77. speed that they have a good chance of breaking through the wall of MacApp
  78. documentation and source code.
  79.  
  80. I hate to say it but the MacApp documentation is not very good.  It is
  81. especially disappointing when compared with Inside Mac.  The Introduction to
  82. MacApp and Object Oriented Programming is nicely written but is not useful
  83. after the first reading.  The MacApp General Reference has been rewritten to be
  84. almost the same as the Introduction and is not very useful.  The old Release
  85. Notes that were replaced by the General Reference can be useful when you want
  86. to understand a specific class or method.  I guess the Class and Method
  87. Reference HyperCard stacks and 411 help files now have all that stuff but it
  88. was easier to deal with in the printed format where you can look at more than
  89. one method at a time.  The Cookbook is helpful for figuring out where to start
  90. and what’s important when you need to do something.  It won’t tell you
  91. everything you need, but still is the most useful of all the manuals.  Dave
  92. Wilson’s book, Programming with MacApp, is essentially equivalent to the
  93. Developer U class, and I would recommend it for anyone who can’t take the
  94. class.  In the end, you will have to learn the MacApp source code.  The
  95. documentation doesn’t go far enough.  Use Mouser for searching.  Use the
  96. FindTag tool (off the Developer CD) for browsing in MPW without Mouser’s tunnel
  97. vision user interface.  The sooner you get into the source, the faster you will
  98. be up to speed.
  99.  
  100. While Mouser (MacBrowse) is useful, I have found ViewEdit to be virtually
  101. useless.  I have seen more problems where someone, who doesn’t know better,
  102. assumes that ViewEdit works the way it really should, and ends up totally
  103. frustrated and confused.  ViewEdit does not work with custom view types and is
  104. not suitable for views with lots of subviews or subviews that overlap each
  105. other.  It is poor for controlling the precise size, location, or alignment of
  106. views.  It should be at least as good as ResEdit and MacDraw, but it is not.
  107. Use Rez and DeView.
  108.  
  109. When programmers first start working with MacApp, there is something it seems
  110. they always have to get out of their system, so plan for it and just do it.
  111. Trace the main event loop and draw a call tree, so you can prove to yourself
  112. that views really do get updated and that mouse clicks, key downs, and menu
  113. choices really are handled.
  114.  
  115. There’s a great temptation to learn MacApp by writing a throw-away program.
  116. I’m not sure, but my gut feeling is that you have to dive in and start solving
  117. real problems to really learn, and anything else is valuable only as a
  118. confidence building exercise.  Eventually you have to leave the small and
  119. familiar and go into the big unknown.
  120.  
  121. Once your programmers are up to speed on MacApp, they are worth more.  The job
  122. market for MacApp programmers is competitive.  It is difficult to hire them and
  123. easy to lose them if you train your own.  Expect to have to give them raises
  124. and be nice to them.
  125.  
  126. Object programming encourages you to work on programs a small piece at a time.
  127. This is good because you get better modularity, once each piece is working it
  128. tends to stay working, and you are always working on a program that works.  A
  129. danger is you can endlessly polish a feature when you should be moving on to
  130. the next one.  You also need to allow time to review specs and do a mini-design
  131. for each piece (class or unit) when you start on it.
  132.  
  133. MacApp makes it very easy to get a view up and displaying data.  When you have
  134. that, you are not half way done; you have just started.  The second 90% is
  135. writing operators and commands for changing the data, with a third 90% is for
  136. fine tuning.
  137.  
  138. An important part of object oriented programming is creating classes for your
  139. data.  Since data classes are application specific, MacApp is not going to
  140. provide much that you can use (except for TDynamicArray and TAssociation).  Try
  141. to design each data class as an abstract data type with a fully orthogonal set
  142. of operators.  Don’t skip on operators, you will need them all.  See TList as a
  143. good example.  Be sure to allow time for design and testing of each data class.
  144.  
  145. Plan to dedicate time and resources for system and configuration management.
  146. It can easily take a day to install MPW and MacApp on a workstation.  Also,
  147. MacApp is rapidly mutating.  The MacApp Engineering group places an emphasis on
  148. developing new features, MacDTS on bug fixes and workarounds.  Testing and
  149. consolidating the different versions of MacApp into a single release is falling
  150. further behind.  I can guarantee that you will not want to use MacApp as it
  151. comes out of the box, but will want to apply your own or somebody else’s fixes
  152. or enhancements.  This means that much comparison, merging, and distribution of
  153. source files is in your future.
  154.  
  155. When you are done, you won’t have saved much time, but you will have a product
  156. that is much better than you may have expected.  The human interface will be
  157. much closer to the Mac standards.  The code will be more modular and reusable
  158. than anything you’ve written before (even if it isn’t easier to understand).
  159. It will run on 100% of the machines that make up 10% of the market.
  160.  
  161. Going to MacApp is an investment decision.  For the first project there is a
  162. major investment in tools and training.  For every project there is an
  163. investment in writing modular, reusable code, and in testing each piece of code
  164. as it is written.  The return is in the higher value of the product (better
  165. interface), in reduced life-cycle costs for support, maintenance, and upgrades,
  166. and in potential code reuse.  I don’t think MacApp is for everybody, and the
  167. costs of using it should be seriously considered before using it.  Another way
  168. of thinking about it is that MacApp almost forces you to create better quality
  169. software.  That quality, like anything else, has a cost.  Be sure that you
  170. really need the quality and can justify the cost.
  171.  
  172. Overall, I’m very glad to be using MacApp.  I hope that my comments will help
  173. people use MacApp wisely and possibly that they might lead to further
  174. improvements in MacApp and its tools.
  175.  
  176.  
  177. Tom Becker
  178. Applied Biosystems, Inc.
  179. 850 Lincoln Centre Drive
  180. Foster City, CA    94404
  181. (415) 570-6667
  182. ABIMAIL.FC  put “ATTN: Tom Becker” as the first line of the message.
  183. twb@biosys.apldbio.com
  184.  
  185.